Completed
Push — master ( 1719ac...509a65 )
by Jeroen De
10s
created

address.js ➔ createAddressValidationDispatcher   A

Complexity

Conditions 1
Paths 2

Size

Total Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 22
rs 9.2
c 1
b 0
f 0
cc 1
nc 2
nop 2
1
'use strict';
2
3
/**
4
 *
5
 * @module redux_validation
6
 */
7
8
var objectAssign = require( 'object-assign' ),
9
	ValidationDispatcher = require( './base' ),
10
	Actions = require( '../actions' ),
11
	_ = require( 'underscore' ),
12
13
	/**
14
	 *
15
	 * @param {AddressValidator} validator
16
	 * @param {Object} initialValues Initial form state. Only the keys and values from fieldNames will be used
17
	 * @return {ValidationDispatcher}
18
	 */
19
	createAddressValidationDispatcher = function ( validator,  initialValues ) {
20
		var fieldNames = [
21
			'addressType',
22
			'salutation',
23
			'title',
24
			'firstName',
25
			'lastName',
26
			'companyName',
27
			'street',
28
			'postcode',
29
			'city',
30
			'country',
31
			'email'
32
		];
33
34
		return objectAssign( Object.create( ValidationDispatcher ), {
35
			validationFunction: validator.validate.bind( validator ),
36
			actionCreationFunction: Actions.newFinishAddressValidationAction,
37
			fields: fieldNames,
38
			previousFieldValues: _.pick( initialValues || {}, fieldNames )
39
		} );
40
	};
41
42
module.exports = createAddressValidationDispatcher;
43
44